<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div {
            position: absolute;
            left: 0;
            width: 200px;
            height: 200px;
            background-color: brown;
        }

        span {
            /* 动画一定要加定位 */
            position: absolute;
            left: 0;
            top: 250px;
            display: block;
            width: 150px;
            height: 150px;
            background-color: purple;
        }
    </style>
</head>
<body>
    <button>停止按钮</button>
    <div>周杰伦</div>
    <br />
    <span>陈奕迅</span>
    <script>
        /* 
            动画：元素不停的往运动。
                 元素当前的位置，再往前走一定的距离。

        */
        var div = document.querySelector('div');
        var button = document.querySelector('button');
        var span = document.querySelector('span');

        // 封装动画函数 
        // 添加回调函数
        function animate(obj, target, callback) {
            // 清除之前的定时器
            clearInterval(obj.timer);
            obj.timer = setInterval(() => {
                // 当前位置
                var currentleft = obj.offsetLeft;
                // 条件判断
                if (currentleft == target) {
                    clearInterval(obj.timer);
                    // 回调判断
                    if (callback != null) {
                        callback();
                    }
                    return;
                }
                // 速度/步长 = (目标位置 - 当前位置) / 10
                var step = (target - currentleft) / 10;
                // 步长取整
                step = step > 0 ? Math.ceil(step) : Math.floor(step);
                obj.style.left = currentleft + step + 'px';
            }, 100);
        }
        button.addEventListener('click', function () {
            animate(div, 500, function () {
                div.style.backgroundColor = 'skyblue';
                console.log(2222);
            });
        });
        // animate(span, 300);
        animate(div, 800);




    </script>
</body>
</html>